package com.example.mybatisplus1.pojo;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
//设置当前实体对应的表名。如果不设置，实体的名称即为表名。
@TableName("student")
public class Student {

    /*
       IdType.AUTO   基于数据库自增
       IdType.ASSIGN_UUID  随机生成一个不重复的uuid值
       IdType.INPUT  自己输入（从哪来？基于redis生成）
       IdType.ASSIGN_ID  基于雪花算法生成的id值
     */
//    @TableId(type = IdType.ASSIGN_ID)
    @TableId
    private Long id;
    @TableField("name")
    private String name;
    @TableField("age")
    private Integer age;
    @TableField("gender")
    private String gender;
    @TableField("score")
    private Double score;

    //忽略数据库不存在的字段
    @TableField(exist = false)
    private String password;

    public Student(Long id, String name, Integer age, String gender, Double score) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.score = score;
    }

    @TableField("deleted")
    //表示这个字段是一个逻辑删除字段
//    @TableLogic(value = "0",delval = "1")
    private Integer deleted;

    @TableField("version")
    //表示这个字段是一个乐观锁的版本号字段
    @Version
    private Integer version;
}
